package cc.uncarbon.module.sys.entity;

import cc.uncarbon.framework.crud.entity.HelioBaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.LocalDate;
import java.time.LocalDateTime;
import cc.uncarbon.framework.core.enums.YesOrNoEnum;
import cc.uncarbon.framework.core.enums.EnabledStatusEnum;


/**
 * 数据表注释
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
@Data
@TableName(value = "vben_menu")
public class VbenMenuEntity extends HelioBaseEntity<Long> {

    @Schema(description = "名称")
    @TableField(value = "name")
    private String name;

    @Schema(description = "路由地址")
    @TableField(value = "path")
    private String path;

    @Schema(description = "标题名称")
    @TableField(value = "title")
    private String title;

    @Schema(description = "重定向路由地址")
    @TableField(value = "redirect")
    private String redirect;

    @Schema(description = "上级菜单ID(根节点设置为0)")
    @TableField(value = "parent_id")
    private Long parentId;

    @Schema(description = "权限标识")
    @TableField(value = "auth_code")
    private String authCode;

    @Schema(description = "图标")
    @TableField(value = "icon")
    private String icon;

    @Schema(description = "激活图标（菜单）")
    @TableField(value = "active_icon")
    private String activeIcon;

    @Schema(description = "当前路由在菜单中不展现")
    @TableField(value = "hide_in_menu")
    private Integer hideInMenu;

    @Schema(description = "当前路由在标签页不展现")
    @TableField(value = "hideIn_tab")
    private Integer hideinTab;

    @Schema(description = "忽略权限，直接可以访问@default false")
    @TableField(value = "ignore_access")
    private Integer ignoreAccess;

    @Schema(description = "开启KeepAlive缓存")
    @TableField(value = "keep_alive")
    private Integer keepAlive;

    @Schema(description = "外链-跳转路径")
    @TableField(value = "link")
    private String link;

    @Schema(description = "在新窗口打开")
    @TableField(value = "open_in_new_window")
    private Integer openInNewWindow;

    @Schema(description = "用于路由->菜单排序")
    @TableField(value = "sort")
    private Integer sort;

    @Schema(description = "类型")
    @TableField(value = "type")
    private String type;

    @Schema(description = "页面组件")
    @TableField(value = "component")
    private String component;

    @Schema(description = "状态(0=禁用 1=启用)")
    @TableField(value = "status")
    private EnabledStatusEnum status;

}
